Security of computer systems is becoming an increasingly important issue, especially with the advent of the Internet which dramatically facilitated exchange of large amount of data among computers. The security may relate to protection of computer systems from attacks from malicious parties which may introduce viruses, worms and other malicious data to the systems. Another security issue relates to ensuring confidentiality of data transmitted over public networks, such as the Internet, by protecting the transmitted data from access by undesirable parties.
The security of a computer system may also encompass control of distribution and access of information stored in the computer system. For example, an enterprise or an organization may have a policy defining which information is desirable to be protected from being distributed outside of the enterprise's computer systems. Such information may include, for example, personal information, financial documents, medical records, description of confidential technology, and other sensitive information.
Computers exchange data using different network communications protocols, such as, for example, Transmission Control Protocol/Internet Protocol (TCP/IP). The TCP/IP has been developed to enable communications between computers, without specific concerns for security. Information transmitted in accordance with the TCP/IP may therefore be subject to different security vulnerabilities. Thus, a variety of security systems have been developed to protect computers from intrusion and to control information stored on the computers. Such security systems examine data received by the computer systems and data that the computer systems attempt to send. To determine whether to allow or block sending or receiving these data over a network, the security systems typically need access to the data in an unencrypted (or decryptable) form.
To improve their security and prevent undesirable interference with transmitted data, many applications increasingly use such measures as encryption and authentication. Different protocols are used to encrypt data sent over a network. A commonly used protocol for encryption and authentication is the Secure Socket Layer (SSL) protocol and its derivatives. While using the SSL improves security, data encrypted using the SSL protocol may not be properly analyzed and interpreted by network security systems controlling access to a network, because the data is encrypted. Malicious parties (e.g., applications and services) may use this feature to bypass security protections or security policies implemented by the network security systems. For example, if data containing viruses, Trojans, or other malicious content is sent or received in an encrypted form, this may not be detected by a network security system. In addition, encrypted sensitive data may be sent outside of an organization thus compromising data privacy.